//! # Rust 快速开发工具类库
//! 
//! 这是一个全面的工具库，提供字符串处理、日期时间、文件操作、JSON处理、验证、随机数生成和加密等功能。
//!
//! ## 模块说明
//!
//! - `core`: 核心基础工具（字符串、验证、转换）
//! - `datetime`: 日期时间工具
//! - `io`: 输入输出工具（文件、媒体、压缩）
//! - `crypto`: 加密解密工具（哈希、对称/非对称加密）
//! - `data`: 数据处理工具（JSON、XML、集合）
//! - `random`: 随机数生成工具
//! - `network`: 网络工具（HTTP、URL、SSL）
//! - `system`: 系统工具（设备信息、进程、内存）
//!
//! ## 使用示例
//!
//! ```rust
//! use librarys::core::string_utils;
//! use librarys::datetime::date_utils;
//!
//! // 字符串工具
//! let result = string_utils::is_empty("");
//! 
//! // 日期工具
//! let now = date_utils::current_timestamp();
//!
//! // 验证工具
//! let is_valid = librarys::core::validation::is_email("test@example.com");
//! ```

// 核心模块（总是可用）
pub mod core;

#[cfg(feature = "datetime")]
pub mod datetime;

#[cfg(feature = "io")]
pub mod io;

#[cfg(any(feature = "crypto", feature = "crypto-full"))]
pub mod crypto;

#[cfg(feature = "data")]
pub mod data;

#[cfg(feature = "random")]
pub mod random;

#[cfg(feature = "network")]
pub mod network;

 // 系统模块总是可用
pub mod system;

// 为了向后兼容，重新导出原有的模块名称
pub use core::string_utils;
pub use core::validation;

#[cfg(feature = "datetime")]
pub use datetime::date_utils;

#[cfg(feature = "io")]
pub use io::file_utils;

#[cfg(feature = "data")]
pub use data::json_utils;

#[cfg(feature = "random")]
pub use random::generators as random_utils;

#[cfg(any(feature = "crypto", feature = "crypto-full"))]
pub use crypto::*;

// 重新导出常用功能（基于特性）
pub use core::*;

#[cfg(feature = "datetime")]
pub use datetime::*;

#[cfg(feature = "io")]
pub use io::*;

#[cfg(feature = "data")]
pub use data::*;

#[cfg(feature = "random")]
pub use random::*;

/// 库版本信息
pub const VERSION: &str = env!("CARGO_PKG_VERSION");

/// 错误类型定义
pub use anyhow::{Error, Result};

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_version() {
        assert!(!VERSION.is_empty());
    }
}